package com.cg.design.graphicdesignpattern.factory.idcard;

import com.cg.design.graphicdesignpattern.factory.framework.Product;

/**
 * 表示ID卡的类
 *
 * @program: LeetCode->IDCard
 * @description: 表示ID卡的类
 * @author: cg
 * @create: 2022-03-19 14:58
 **/
public class IDCard implements Product {

    private String owner;
    private int serial;

    /**
     * 未加public关键词是想让idcard包外的类无法new出IDCard类的实例。
     * 这样就可以强迫外部必须通过IDCardFactory类来生成IDCard的实例。
     * 注：只有在同一个包中的类可以访问不带public、protected、private等修饰符的构造函数和方法。
     *
     * @param owner  产品拥有者
     * @param serial 产品编号
     */
    IDCard(String owner, int serial) {
        System.out.println("制作" + owner + "(" + serial + ")" + "的ID卡。");
        this.owner = owner;
        this.serial = serial;
    }

    @Override
    public void use() {
        System.out.println("使用" + owner + "(" + serial + ")" + "的ID卡。");
    }

    public String getOwner() {
        return owner;
    }

    public int getSerial() {
        return serial;
    }
}
